{% macro paginate(source, url) -%}
    {% if source %}
        <ul class="pagination pagination-sm no-margin pull-right">
            {% if source.page > 1 %}
                <li><a href="{{ url_for(url, page=1) }}">首页</a></li>
            {% endif %}

            {% if source.has_prev %}
                <li><a href="{{ url_for(url, page=source.prev_num) }}">上一页</a></li>
            {% endif %}

            {% for v in source.iter_pages() %}
                {% if v == source.page %}
                    <li class="active"><a href="#">{{ v }}</a></li>
                {% else %}
                    <li><a href="{{ url_for(url, page=v) }}">{{ v }}</a></li>
                {% endif %}
            {% endfor %}

            {% if source.has_next %}
                <li><a href="{{ url_for(url, page=source.next_num) }}">下一页</a></li>
            {% endif %}

            {% if source.page != source.pages %}
                <li><a href="{{ url_for(url, page=source.pages) }}">尾页</a></li>
            {% endif %}
        </ul>
    {% endif %}
{%- endmacro %}